home *** CD-ROM | disk | FTP | other *** search
/ Network PC / Network PC.iso / amiga utilities / communication / bbs / termv4.6 / extras / source / term-source.lha / CapturePanel.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-03-18  |  16.5 KB  |  670 lines

  1. /*
  2. **    CapturePanel.c
  3. **
  4. **    Editing panel for log file, buffer and capture configuration
  5. **
  6. **    Copyright © 1990-1996 by Olaf `Olsen' Barthel
  7. **        All Rights Reserved
  8. */
  9.  
  10. #ifndef _GLOBAL_H
  11. #include "Global.h"
  12. #endif
  13.  
  14. enum    {    GAD_LOGACTIONS, GAD_LOGFILE, GAD_SELECT_LOGFILE, GAD_LOGCALLS, GAD_CALL_LOGFILE,GAD_SELECT_CALL_LOGFILE,
  15.         GAD_MAX_BUFFER_SIZE,GAD_BUFFER_ENABLED,GAD_BUFFER_PATH,GAD_SELECT_BUFFER_PATH,
  16.         GAD_CONNECT_AUTO_CAPTURE, GAD_AUTOCAPTURE_DATE, GAD_CAPTURE_FILTER, GAD_CONVERT_CHARS,
  17.         GAD_CAPTURE_PATH, GAD_SELECT_CAPTURE_PATH, GAD_OPEN_BUFFER_WINDOW, GAD_BUFFER_MODE,
  18.         GAD_REMEMBER_WINDOW_POS,GAD_OPEN_BUFFER_SCREEN,GAD_REMEMBER_SCREEN_POS,GAD_SEARCH_HISTORY,
  19.         GAD_SCREENMODE,GAD_BUFFERSCREEN_POSITION,GAD_BUFFERWIDTH,GAD_USE, GAD_CANCEL,
  20.         GAD_PAGER, GAD_PAGEGROUP
  21.     };
  22.  
  23. BOOL
  24. CapturePanel(struct Window *Parent,struct Configuration *LocalConfig)
  25. {
  26.     STATIC LONG PageTitleID[] =
  27.     {
  28.         MSG_V36_0008,
  29.         MSG_V36_0011,
  30.         MSG_V36_0009,
  31.         MSG_V36_0014,
  32.         MSG_V36_0013,
  33.         -1
  34.     };
  35.  
  36.     STATIC BYTE InitialPage = 0;
  37.  
  38.     struct LayoutHandle    *Handle;
  39.     BOOL             UseIt = FALSE;
  40.  
  41.     SaveConfig(LocalConfig,PrivateConfig);
  42.  
  43.     if(Handle = LT_CreateHandleTags(Parent -> WScreen,
  44.         LH_LocaleHook,    &LocaleHook,
  45.         LH_ExitFlush,    FALSE,
  46.     TAG_DONE))
  47.     {
  48.         struct Window    *PanelWindow;
  49.         BYTE         OpenBufferWindow = PrivateConfig -> CaptureConfig -> OpenBufferWindow,
  50.                  OpenBufferScreen = PrivateConfig -> CaptureConfig -> OpenBufferScreen;
  51.         UBYTE         ModeName[DISPLAYNAMELEN + 1];
  52.         ULONG         DisplayMode;
  53.  
  54.         if(OpenBufferWindow > BUFFER_END)
  55.             OpenBufferWindow = BUFFER_END;
  56.         else
  57.         {
  58.             if(OpenBufferWindow < BUFFER_TOP)
  59.                 OpenBufferWindow = BUFFER_TOP;
  60.         }
  61.  
  62.         if(OpenBufferScreen > BUFFER_END)
  63.             OpenBufferScreen = BUFFER_END;
  64.         else
  65.         {
  66.             if(OpenBufferScreen < BUFFER_TOP)
  67.                 OpenBufferScreen = BUFFER_TOP;
  68.         }
  69.  
  70.         DisplayMode = PrivateConfig -> CaptureConfig -> BufferScreenMode;
  71.  
  72.         if(ModeNotAvailable(DisplayMode))
  73.         {
  74.             if(PrivateConfig && PrivateConfig -> ScreenConfig)
  75.                 DisplayMode = PrivateConfig -> ScreenConfig -> DisplayMode;
  76.             else
  77.                 DisplayMode = INVALID_ID;
  78.         }
  79.  
  80.         if(ModeNotAvailable(DisplayMode))
  81.         {
  82.             struct Screen *PubScreen = LockPubScreen(NULL);
  83.  
  84.             if(PubScreen)
  85.             {
  86.                 DisplayMode = GetVPModeID(&PubScreen -> ViewPort);
  87.  
  88.                 UnlockPubScreen(NULL,PubScreen);
  89.             }
  90.             else
  91.                 DisplayMode = DEFAULT_MONITOR_ID | HIRES_KEY;
  92.         }
  93.  
  94.         strcpy(ModeName,GetModeName(DisplayMode));
  95.  
  96.         LT_New(Handle,
  97.             LA_Type,    VERTICAL_KIND,
  98.         TAG_DONE);
  99.         {
  100.             LT_New(Handle,
  101.                 LA_Type,VERTICAL_KIND,
  102.             TAG_DONE);
  103.             {
  104.                 LT_New(Handle,
  105.                     LA_Type,    TAB_KIND,
  106.                     LA_ID,        GAD_PAGER,
  107.                     LA_LabelID,    MSG_XFER_PAGE_TXT,
  108.                     LACY_LabelTable,PageTitleID,
  109.                     LACY_AutoPageID,GAD_PAGEGROUP,
  110.                     LACY_TabKey,    TRUE,
  111.                     LA_BYTE,    &InitialPage,
  112.                     LATB_FullWidth,    TRUE,
  113.                 TAG_DONE);
  114.  
  115.                 LT_EndGroup(Handle);
  116.             }
  117.  
  118.             LT_New(Handle,
  119.                 LA_Type,    VERTICAL_KIND,
  120.                 LA_ID,        GAD_PAGEGROUP,
  121.                 LAGR_ActivePage,InitialPage,
  122.             TAG_DONE);
  123.             {
  124.                 LT_New(Handle,
  125.                     LA_Type,    VERTICAL_KIND,
  126.                 TAG_DONE);
  127.                 {
  128.                     LT_New(Handle,
  129.                         LA_LabelID,    MSG_CAPTUREPANEL_LOG_ACTIONS_GAD,
  130.                         LA_Type,    CHECKBOX_KIND,
  131.                         LA_ID,        GAD_LOGACTIONS,
  132.                         LA_BYTE,    &PrivateConfig -> CaptureConfig -> LogActions,
  133.                     TAG_DONE);
  134.  
  135.                     LT_New(Handle,
  136.                         LA_LabelID,    MSG_CAPTUREPANEL_LOGFILE_GAD,
  137.                         LA_Type,    STRING_KIND,
  138.                         LA_ID,        GAD_LOGFILE,
  139.                         LA_Chars,    20,
  140.                         LA_STRPTR,    PrivateConfig -> CaptureConfig -> LogFileName,
  141.                         LAST_Picker,    TRUE,
  142.                         GTST_MaxChars,    MAX_FILENAME_LENGTH - 1,
  143.                     TAG_DONE);
  144.  
  145.                     LT_New(Handle,
  146.                         LA_Type,    XBAR_KIND,
  147.                     TAG_DONE);
  148.  
  149.                     LT_New(Handle,
  150.                         LA_LabelID,    MSG_CAPTUREPANEL_LOG_CALLS_GAD,
  151.                         LA_Type,    CHECKBOX_KIND,
  152.                         LA_ID,        GAD_LOGCALLS,
  153.                         LA_BYTE,    &PrivateConfig -> CaptureConfig -> LogCall,
  154.                     TAG_DONE);
  155.  
  156.                     LT_New(Handle,
  157.                         LA_LabelID,    MSG_CAPTUREPANEL_CALL_LOGFILE_GAD,
  158.                         LA_Type,    STRING_KIND,
  159.                         LA_ID,        GAD_CALL_LOGFILE,
  160.                         LA_STRPTR,    PrivateConfig -> CaptureConfig -> CallLogFileName,
  161.                         LAST_Picker,    TRUE,
  162.                         GTST_MaxChars,    MAX_FILENAME_LENGTH - 1,
  163.                     TAG_DONE);
  164.  
  165.                     LT_EndGroup(Handle);
  166.                 }
  167.  
  168.                 LT_New(Handle,
  169.                     LA_Type,    VERTICAL_KIND,
  170.                 TAG_DONE);
  171.                 {
  172.                     LT_New(Handle,
  173.                         LA_Type,    VERTICAL_KIND,
  174.                     TAG_DONE);
  175.                     {
  176.                         LT_New(Handle,
  177.                             LA_LabelID,    MSG_CAPTUREPANEL_CONNECT_AUTO_CAPTURE_GAD,
  178.                             LA_Type,    CHECKBOX_KIND,
  179.                             LA_ID,        GAD_CONNECT_AUTO_CAPTURE,
  180.                             LA_BYTE,    &PrivateConfig -> CaptureConfig -> ConnectAutoCapture,
  181.                         TAG_DONE);
  182.  
  183.                         LT_New(Handle,
  184.                             LA_LabelID,    MSG_CAPTUREPANEL_CAPTURE_FILTER_ENABLED_GAD,
  185.                             LA_Type,    CHECKBOX_KIND,
  186.                             LA_ID,        GAD_CAPTURE_FILTER,
  187.                             LA_BYTE,    &PrivateConfig -> CaptureConfig -> CaptureFilterMode,
  188.                         TAG_DONE);
  189.  
  190.                         LT_New(Handle,
  191.                             LA_LabelID,    MSG_CONVERT_CHARACTERS_GAD,
  192.                             LA_Type,    CHECKBOX_KIND,
  193.                             LA_BYTE,    &PrivateConfig -> CaptureConfig -> ConvertChars,
  194.                             GA_Disabled,    !PrivateConfig -> CaptureConfig -> CaptureFilterMode,
  195.                             LA_ID,        GAD_CONVERT_CHARS,
  196.                         TAG_DONE);
  197.  
  198.                         LT_EndGroup(Handle);
  199.                     }
  200.  
  201.                     LT_New(Handle,
  202.                         LA_Type,    VERTICAL_KIND,
  203.                     TAG_DONE);
  204.                     {
  205.                         LT_New(Handle,
  206.                             LA_LabelID,    MSG_CAPTUREPANEL_CREATION_DATE_GAD,
  207.                             LA_Type,    CYCLE_KIND,
  208.                             LA_ID,        GAD_AUTOCAPTURE_DATE,
  209.                             LA_BYTE,    &PrivateConfig -> CaptureConfig -> AutoCaptureDate,
  210.                             LACY_FirstLabel,MSG_CAPTUREPANEL_APPEND_DATE_TXT,
  211.                             LACY_LastLabel,    MSG_CAPTUREPANEL_WRITE_DATE_TO_FILE_TXT,
  212.                         TAG_DONE);
  213.  
  214.                         LT_New(Handle,
  215.                             LA_LabelID,    MSG_CAPTUREPANEL_CAPTURE_PATH_GAD,
  216.                             LA_Type,    STRING_KIND,
  217.                             LA_ID,        GAD_CAPTURE_PATH,
  218.                             LA_Chars,    20,
  219.                             LA_STRPTR,    PrivateConfig -> CaptureConfig -> CapturePath,
  220.                             LAST_Picker,    TRUE,
  221.                             GTST_MaxChars,    MAX_FILENAME_LENGTH - 1,
  222.                             LA_ExtraSpace,    TRUE,
  223.                         TAG_DONE);
  224.  
  225.                         LT_EndGroup(Handle);
  226.                     }
  227.  
  228.                     LT_EndGroup(Handle);
  229.                 }
  230.  
  231.                 LT_New(Handle,
  232.                     LA_Type,    VERTICAL_KIND,
  233.                 TAG_DONE);
  234.                 {
  235.                     LT_New(Handle,
  236.                         LA_LabelID,        MSG_CAPTUREPANEL_BUFFER_ENABLED_GAD,
  237.                         LA_Type,        CHECKBOX_KIND,
  238.                         LA_ID,            GAD_BUFFER_ENABLED,
  239.                         LA_BYTE,        &PrivateConfig -> CaptureConfig -> BufferEnabled,
  240.                     TAG_DONE);
  241.  
  242.                     LT_New(Handle,
  243.                         LA_LabelID,        MSG_CAPTUREPANEL_MAX_BUFFER_SIZE_GAD,
  244.                         LA_Type,        INTEGER_KIND,
  245.                         LA_ID,            GAD_MAX_BUFFER_SIZE,
  246.                         LA_LONG,        &PrivateConfig -> CaptureConfig -> MaxBufferSize,
  247.                         LAIN_UseIncrementers,    TRUE,
  248.                         LAIN_Min,        0,
  249.                     TAG_DONE);
  250.  
  251.                     LT_New(Handle,
  252.                         LA_LabelID,        MSG_CAPTUREPANEL_BUFFER_PATH_GAD,
  253.                         LA_Type,        STRING_KIND,
  254.                         LA_ID,            GAD_BUFFER_PATH,
  255.                         LA_STRPTR,        PrivateConfig -> CaptureConfig -> BufferPath,
  256.                         LAST_Picker,        TRUE,
  257.                         LA_Chars,        20,
  258.                         GTST_MaxChars,        MAX_FILENAME_LENGTH - 1,
  259.                     TAG_DONE);
  260.  
  261.                     LT_New(Handle,
  262.                         LA_LabelID,        MSG_CAPTUREPANEL_BUFFER_LINE_WIDTH_GAD,
  263.                         LA_Type,        SliderType,
  264.                         LA_ID,            GAD_BUFFERWIDTH,
  265.                         LA_UBYTE,        &PrivateConfig -> CaptureConfig -> BufferWidth,
  266.                         GTSL_Min,        80,
  267.                         GTSL_Max,        BUFFER_LINE_MAX,
  268.                         GTSL_LevelFormat,    "%3ld",
  269.                     TAG_DONE);
  270.  
  271.                     LT_New(Handle,
  272.                         LA_LabelID,        MSG_BUFFER_OPERATION_MODE_TXT,
  273.                         LA_Type,        CYCLE_KIND,
  274.                         LA_ID,            GAD_BUFFER_MODE,
  275.                         LA_BYTE,        &PrivateConfig -> CaptureConfig -> BufferMode,
  276.                         LACY_FirstLabel,    MSG_BUFFER_MODE1_TXT,
  277.                         LACY_LastLabel,        MSG_BUFFER_MODE2_TXT,
  278.                     TAG_DONE);
  279.  
  280.                     LT_New(Handle,
  281.                         LA_Type,        XBAR_KIND,
  282.                     TAG_DONE);
  283.  
  284.                     if(PrivateConfig -> CaptureConfig -> SearchHistory < 1)
  285.                         PrivateConfig -> CaptureConfig -> SearchHistory = 10;
  286.  
  287.                     LT_New(Handle,
  288.                         LA_LabelID,        MSG_CAPTUREPANEL_SEARCH_HISTORY_GAD,
  289.                         LA_Type,        INTEGER_KIND,
  290.                         LA_ID,            GAD_SEARCH_HISTORY,
  291.                         LA_Chars,        8,
  292.                         LAIN_UseIncrementers,    TRUE,
  293.                         LAIN_Min,        1,
  294.                         LAIN_Max,        255,
  295.                         LA_BYTE,        &PrivateConfig -> CaptureConfig -> SearchHistory,
  296.                     TAG_DONE);
  297.  
  298.                     LT_EndGroup(Handle);
  299.                 }
  300.  
  301.                 LT_New(Handle,
  302.                     LA_Type,    VERTICAL_KIND,
  303.                 TAG_DONE);
  304.                 {
  305.                     LT_New(Handle,
  306.                         LA_Type,    VERTICAL_KIND,
  307.                     TAG_DONE);
  308.                     {
  309.                         LT_New(Handle,
  310.                             LA_LabelID,    MSG_CAPTUREPANEL_OPEN_BUFFER_SCREEN_GAD,
  311.                             LA_Type,    MX_KIND,
  312.                             LA_ID,        GAD_OPEN_BUFFER_SCREEN,
  313.                             LA_BYTE,    &OpenBufferScreen,
  314.                             LAMX_FirstLabel,MSG_CAPTUREPANEL_TOP_TXT,
  315.                             LAMX_LastLabel,    MSG_CAPTUREPANEL_END_TXT,
  316.                         TAG_DONE);
  317.  
  318.                         LT_New(Handle,
  319.                             LA_LabelID,    MSG_CAPTUREPANEL_REMEMBER_BUFFER_SCREEN_GAD,
  320.                             LA_Type,    CHECKBOX_KIND,
  321.                             LA_ID,        GAD_REMEMBER_SCREEN_POS,
  322.                             LA_BYTE,    &PrivateConfig -> CaptureConfig -> RememberBufferScreen,
  323.                             LA_ExtraSpace,    TRUE,
  324.                         TAG_DONE);
  325.  
  326.                         LT_New(Handle,
  327.                             LA_Type,    XBAR_KIND,
  328.                         TAG_DONE);
  329.  
  330.                         LT_New(Handle,
  331.                             LA_LabelID,    MSG_CAPTUREPANEL_BUFFER_SCREEN_POSITION_GAD,
  332.                             LA_Type,    MX_KIND,
  333.                             LA_ID,        GAD_BUFFERSCREEN_POSITION,
  334.                             LA_BYTE,    &PrivateConfig -> CaptureConfig -> BufferScreenPosition,
  335.                             LAMX_FirstLabel,MSG_CAPTUREPANEL_LEFT_TXT,
  336.                             LAMX_LastLabel,    MSG_CAPTUREPANEL_RIGHT_TXT,
  337.                         TAG_DONE);
  338.  
  339.                         LT_New(Handle,
  340.                             LA_Type,    XBAR_KIND,
  341.                         TAG_DONE);
  342.  
  343.                         LT_EndGroup(Handle);
  344.                     }
  345.  
  346.                     LT_New(Handle,
  347.                         LA_Type,    VERTICAL_KIND,
  348.                     TAG_DONE);
  349.                     {
  350.                         LT_New(Handle,
  351.                             LA_Type,    TEXT_KIND,
  352.                             LA_LabelID,    MSG_SCREENPANEL_CURRENT_DISPLAY_MODE_GAD,
  353.                             LA_Chars,    DISPLAYNAMELEN,
  354.                             LA_ID,        GAD_SCREENMODE,
  355.                             GTTX_Text,    ModeName,
  356.                             GTTX_Border,    TRUE,
  357.                             LATX_Picker,    TRUE,
  358.                             LATX_LockSize,    TRUE,
  359.                         TAG_DONE);
  360.  
  361.                         LT_EndGroup(Handle);
  362.                     }
  363.  
  364.                     LT_EndGroup(Handle);
  365.                 }
  366.  
  367.                 LT_New(Handle,
  368.                     LA_Type,    VERTICAL_KIND,
  369.                 TAG_DONE);
  370.                 {
  371.                     LT_New(Handle,
  372.                         LA_LabelID,    MSG_CAPTUREPANEL_OPEN_BUFFER_WINDOW_GAD,
  373.                         LA_Type,    MX_KIND,
  374.                         LA_ID,        GAD_OPEN_BUFFER_WINDOW,
  375.                         LA_BYTE,    &OpenBufferWindow,
  376.                         LAMX_FirstLabel,MSG_CAPTUREPANEL_TOP_TXT,
  377.                         LAMX_LastLabel,    MSG_CAPTUREPANEL_END_TXT,
  378.                     TAG_DONE);
  379.  
  380.                     LT_New(Handle,
  381.                         LA_LabelID,    MSG_CAPTUREPANEL_REMEMBER_BUFFER_WINDOW_GAD,
  382.                         LA_Type,    CHECKBOX_KIND,
  383.                         LA_ID,        GAD_REMEMBER_WINDOW_POS,
  384.                         LA_BYTE,    &PrivateConfig -> CaptureConfig -> RememberBufferWindow,
  385.                         LA_ExtraSpace,    TRUE,
  386.                     TAG_DONE);
  387.  
  388.                     LT_EndGroup(Handle);
  389.                 }
  390.  
  391.                 LT_EndGroup(Handle);
  392.             }
  393.  
  394.             LT_New(Handle,
  395.                 LA_Type,    VERTICAL_KIND,
  396.             TAG_DONE);
  397.             {
  398.                 LT_New(Handle,
  399.                     LA_Type,    XBAR_KIND,
  400.                     LAXB_FullSize,    TRUE,
  401.                 TAG_DONE);
  402.  
  403.                 LT_EndGroup(Handle);
  404.             }
  405.  
  406.             LT_New(Handle,LA_Type,HORIZONTAL_KIND,
  407.                 LAGR_SameSize,    TRUE,
  408.                 LAGR_Spread,    TRUE,
  409.             TAG_DONE);
  410.             {
  411.                 LT_New(Handle,
  412.                     LA_Type,    BUTTON_KIND,
  413.                     LA_LabelID,    MSG_GLOBAL_USE_GAD,
  414.                     LA_ID,        GAD_USE,
  415.                     LABT_ReturnKey,    TRUE,
  416.                     LABT_ExtraFat,    TRUE,
  417.                 TAG_DONE);
  418.  
  419.                 LT_New(Handle,
  420.                     LA_Type,    BUTTON_KIND,
  421.                     LA_LabelID,    MSG_GLOBAL_CANCEL_GAD,
  422.                     LA_ID,        GAD_CANCEL,
  423.                     LABT_EscKey,    TRUE,
  424.                     LABT_ExtraFat,    TRUE,
  425.                 TAG_DONE);
  426.  
  427.                 LT_EndGroup(Handle);
  428.             }
  429.  
  430.             LT_EndGroup(Handle);
  431.         }
  432.  
  433.         if(PanelWindow = LT_Build(Handle,
  434.             LAWN_TitleID,        MSG_CAPTUREPANEL_CAPTURE_SETTINGS_TXT,
  435.             LAWN_IDCMP,        IDCMP_CLOSEWINDOW,
  436.             LAWN_HelpHook,        &GuideHook,
  437.             LAWN_Parent,        Parent,
  438.             WA_DepthGadget,        TRUE,
  439.             WA_CloseGadget,        TRUE,
  440.             WA_DragBar,        TRUE,
  441.             WA_RMBTrap,        TRUE,
  442.             WA_Activate,        TRUE,
  443.             WA_SimpleRefresh,    TRUE,
  444.         TAG_DONE))
  445.         {
  446.             struct IntuiMessage    *Message;
  447.             BOOL             Done = FALSE;
  448.             ULONG             MsgClass;
  449.             struct Gadget        *MsgGadget;
  450.             UBYTE             DummyBuffer[MAX_FILENAME_LENGTH],
  451.                         *DummyChar;
  452.             struct FileRequester    *FileRequest;
  453.  
  454.             GuideContext(CONTEXT_CAPTURE);
  455.  
  456.             PushWindow(PanelWindow);
  457.  
  458.             LT_ShowWindow(Handle,TRUE);
  459.  
  460.             do
  461.             {
  462.                 if(Wait(PORTMASK(PanelWindow -> UserPort) | SIG_BREAK) & SIG_BREAK)
  463.                     break;
  464.  
  465.                 while(Message = LT_GetIMsg(Handle))
  466.                 {
  467.                     MsgClass    = Message -> Class;
  468.                     MsgGadget    = (struct Gadget *)Message -> IAddress;
  469.  
  470.                     LT_ReplyIMsg(Message);
  471.  
  472.                     if(MsgClass == IDCMP_CLOSEWINDOW)
  473.                         Done = TRUE;
  474.  
  475.                     if(MsgClass == IDCMP_GADGETUP)
  476.                     {
  477.                         switch(MsgGadget -> GadgetID)
  478.                         {
  479.                             case GAD_CAPTURE_FILTER:
  480.  
  481.                                 LT_SetAttributes(Handle,GAD_CONVERT_CHARS,
  482.                                     GA_Disabled,    !PrivateConfig -> CaptureConfig -> CaptureFilterMode,
  483.                                 TAG_DONE);
  484.  
  485.                                 break;
  486.  
  487.                             case GAD_USE:
  488.  
  489.                                 LT_UpdateStrings(Handle);
  490.  
  491.                                 PrivateConfig -> CaptureConfig -> OpenBufferWindow = OpenBufferWindow;
  492.                                 PrivateConfig -> CaptureConfig -> OpenBufferScreen = OpenBufferScreen;
  493.                                 PrivateConfig -> CaptureConfig -> BufferScreenMode = DisplayMode;
  494.  
  495.                                 UseIt = Done = TRUE;
  496.                                 break;
  497.  
  498.                             case GAD_CANCEL:
  499.  
  500.                                 Done = TRUE;
  501.                                 break;
  502.  
  503.                             case GAD_LOGFILE:
  504.                             case GAD_CALL_LOGFILE:
  505.  
  506.                                 FindPath(PanelWindow,LT_GetString(Handle,MsgGadget -> GadgetID),TRUE,NULL);
  507.                                 break;
  508.  
  509.                             case GAD_BUFFER_PATH:
  510.                             case GAD_CAPTURE_PATH:
  511.  
  512.                                 FindDrawer(PanelWindow,LT_GetString(Handle,MsgGadget -> GadgetID),TRUE,NULL);
  513.                                 break;
  514.                         }
  515.                     }
  516.  
  517.                     if(MsgClass == IDCMP_IDCMPUPDATE)
  518.                     {
  519.                         switch(MsgGadget -> GadgetID)
  520.                         {
  521.                             case GAD_LOGFILE:
  522.  
  523.                                 LT_LockWindow(PanelWindow);
  524.  
  525.                                 strcpy(DummyBuffer,(STRPTR)LT_GetAttributes(Handle,MsgGadget -> GadgetID,TAG_DONE));
  526.  
  527.                                 if(DummyBuffer[0])
  528.                                 {
  529.                                     if(FilePart(DummyBuffer) == DummyBuffer)
  530.                                         DummyBuffer[0] = 0;
  531.                                     else
  532.                                     {
  533.                                         DummyChar = PathPart(DummyBuffer);
  534.  
  535.                                         *DummyChar = 0;
  536.                                     }
  537.  
  538.                                     DummyChar = FilePart((STRPTR)LT_GetAttributes(Handle,MsgGadget -> GadgetID,TAG_DONE));
  539.                                 }
  540.                                 else
  541.                                     DummyChar = "";
  542.  
  543.                                 if(FileRequest = GetFile(PanelWindow,LocaleString(MSG_CAPTUREPANEL_SELECT_LOGFILE_TXT),DummyBuffer,DummyChar,DummyBuffer,NULL,TRUE,FALSE,FALSE,LocaleString(MSG_GLOBAL_SELECT_TXT),TRUE))
  544.                                 {
  545.                                     FindPath(PanelWindow,DummyBuffer,TRUE,NULL);
  546.  
  547.                                     LT_SetAttributes(Handle,MsgGadget -> GadgetID,
  548.                                         GTST_String,    DummyBuffer,
  549.                                     TAG_DONE);
  550.  
  551.                                     FreeAslRequest(FileRequest);
  552.                                 }
  553.  
  554.                                 LT_UnlockWindow(PanelWindow);
  555.                                 break;
  556.  
  557.                             case GAD_CALL_LOGFILE:
  558.  
  559.                                 LT_LockWindow(PanelWindow);
  560.  
  561.                                 strcpy(DummyBuffer,(STRPTR)LT_GetAttributes(Handle,MsgGadget -> GadgetID,TAG_DONE));
  562.  
  563.                                 if(DummyBuffer[0])
  564.                                 {
  565.                                     if(FilePart(DummyBuffer) == DummyBuffer)
  566.                                         DummyBuffer[0] = 0;
  567.                                     else
  568.                                     {
  569.                                         DummyChar = PathPart(DummyBuffer);
  570.  
  571.                                         *DummyChar = 0;
  572.                                     }
  573.  
  574.                                     DummyChar = FilePart((STRPTR)LT_GetAttributes(Handle,MsgGadget -> GadgetID,TAG_DONE));
  575.                                 }
  576.                                 else
  577.                                     DummyChar = "";
  578.  
  579.                                 if(FileRequest = GetFile(PanelWindow,LocaleString(MSG_CAPTUREPANEL_SELECT_CALL_LOGFILE_TXT),DummyBuffer,DummyChar,DummyBuffer,NULL,TRUE,FALSE,FALSE,LocaleString(MSG_GLOBAL_SELECT_TXT),TRUE))
  580.                                 {
  581.                                     FindPath(PanelWindow,DummyBuffer,TRUE,NULL);
  582.  
  583.                                     LT_SetAttributes(Handle,MsgGadget -> GadgetID,
  584.                                         GTST_String,    DummyBuffer,
  585.                                     TAG_DONE);
  586.  
  587.                                     FreeAslRequest(FileRequest);
  588.                                 }
  589.  
  590.                                 LT_UnlockWindow(PanelWindow);
  591.                                 break;
  592.  
  593.                             case GAD_BUFFER_PATH:
  594.  
  595.                                 LT_LockWindow(PanelWindow);
  596.  
  597.                                 strcpy(DummyBuffer,(STRPTR)LT_GetAttributes(Handle,MsgGadget -> GadgetID,TAG_DONE));
  598.  
  599.                                 if(FileRequest = GetFile(PanelWindow,LocaleString(MSG_CAPTUREPANEL_SELECT_BUFFER_PATH_TXT),DummyBuffer,"",DummyBuffer,NULL,TRUE,FALSE,TRUE,LocaleString(MSG_GLOBAL_SELECT_TXT),TRUE))
  600.                                 {
  601.                                     FindDrawer(PanelWindow,DummyBuffer,TRUE,NULL);
  602.  
  603.                                     LT_SetAttributes(Handle,MsgGadget -> GadgetID,
  604.                                         GTST_String,    DummyBuffer,
  605.                                     TAG_DONE);
  606.  
  607.                                     FreeAslRequest(FileRequest);
  608.                                 }
  609.  
  610.                                 LT_UnlockWindow(PanelWindow);
  611.                                 break;
  612.  
  613.                             case GAD_CAPTURE_PATH:
  614.  
  615.                                 LT_LockWindow(PanelWindow);
  616.  
  617.                                 strcpy(DummyBuffer,(STRPTR)LT_GetAttributes(Handle,MsgGadget -> GadgetID,TAG_DONE));
  618.  
  619.                                 if(FileRequest = GetFile(PanelWindow,LocaleString(MSG_CAPTUREPANEL_SELECT_CAPTURE_PATH_TXT),DummyBuffer,"",DummyBuffer,NULL,TRUE,FALSE,TRUE,LocaleString(MSG_GLOBAL_SELECT_TXT),TRUE))
  620.                                 {
  621.                                     FindDrawer(PanelWindow,DummyBuffer,TRUE,NULL);
  622.  
  623.                                     LT_SetAttributes(Handle,MsgGadget -> GadgetID,
  624.                                         GTST_String,    DummyBuffer,
  625.                                     TAG_DONE);
  626.  
  627.                                     FreeAslRequest(FileRequest);
  628.                                 }
  629.  
  630.                                 LT_UnlockWindow(PanelWindow);
  631.                                 break;
  632.  
  633.                             case GAD_SCREENMODE:
  634.  
  635.                                 LT_LockWindow(PanelWindow);
  636.  
  637.                                 if(PickDisplayMode(PanelWindow,&DisplayMode,NULL))
  638.                                 {
  639.                                     strcpy(ModeName,GetModeName(DisplayMode));
  640.  
  641.                                     LT_SetAttributes(Handle,GAD_SCREENMODE,
  642.                                         GTTX_Text,    ModeName,
  643.                                     TAG_DONE);
  644.                                 }
  645.  
  646.                                 LT_UnlockWindow(PanelWindow);
  647.  
  648.                                 LT_ShowWindow(Handle,TRUE);
  649.  
  650.                                 break;
  651.                         }
  652.                     }
  653.                 }
  654.             }
  655.             while(!Done);
  656.  
  657.             PopWindow();
  658.         }
  659.  
  660.         LT_DeleteHandle(Handle);
  661.     }
  662.  
  663.     if(UseIt)
  664.         SwapConfig(LocalConfig,PrivateConfig);
  665.     else
  666.         SaveConfig(LocalConfig,PrivateConfig);
  667.  
  668.     return(UseIt);
  669. }
  670.